In storage management, data is stored in storage devices. Storage devices may use two (or more) different types of storage to store and provide access to data, which are primary storage and cache. Primary storage is where data is primarily and persistently stored, and cache is where data is stored to provide quick access to data. The cache stores less data than primary storage and is often comprised of more expensive and more quickly accessed memory than that used for primary storage. For example, cache may be volatile memory or non-volatile flash memory and the primary storage may be disk-based storage.
To ensure availability of data on a storage device when that storage device fails or otherwise becomes unavailable, storage management systems use data mirroring. In data mirroring, data stored on a storage device is stored redundantly on one or more other storage devices. Data mirroring ensures that when mirrored data on a storage device becomes unavailable on that storage device, a redundantly stored copy may be obtained from another storage device.
When a storage device becomes unavailable, it is advantageous to bring the storage device back on-line quickly. A complication of bringing the storage device on-line is that mirrored data on primary storage of the storage device may be stale because the mirrored data does not reflect updates that were made recently or made after the unavailability. When bringing the storage device back on-line, a current version of the mirrored data may be used to update respective data on the storage device.